package com.bonc.apicreator.entity;


import java.util.Date;
import java.util.List;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Transient;

import lombok.Getter;
import lombok.Setter;

import org.hibernate.validator.constraints.NotBlank;


/**
 * 工程实体类
 *
 * @author gaopengyu
 * @version 2016年8月5日
 * @see Project
 * @since
 */
@Setter
@Getter
@Entity
public class Project {
    /**
     * 主键
     */
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;// 主键id

    /**
     * 工程名
     */
    @NotBlank
    private String name;

    /**
     * 编码
     */
    private String code;

    /**
     * 上下文路径
     */
    private String context;

    /**
     * 版本
     */
    private String version;

    /**
     * 描述
     */
    private String description;

    /**
     * 数据源
     */
    private String dataCenterType;

    /**
     * 创建时间
     */
    private Date createDate;

    /**
     * 创建人（Id）
     */
    private Long createBy;

    /**
     * 修改时间
     */
    private Date updateDate;

    /**
     * 修改人（Id）
     */
    private Long updateBy;

    /**
     * 当前工程的所有API
     */
    @Transient
    private List<RestApi> apis;

    /**
     * 包名
     */
    private String packageName;

    /**
     * hbase的zookeeperQuorum（dev）
     */
    private String zkQuorum;
    
    /**
     * hbase的zkClientPort（dev）
     */
    private String zkClientPort;

    /**
     * hbase的zkParent（dev）
     */
    private String zkParent;

    /**
     * hbase的zookeeperQuorum（profile）
     */
    private String zkQuorum_profile;
    
    /**
     * hbase的zkClientPort（profile）
     */
    private String zkClientPort_profile;

    /**
     * hbase的zkParent（profile）
     */
    private String zkParent_profile;
    
    /**
     * rootUrl
     */
    private String rootUrl;

    /**
     * mysqlUrl
     */
    private String mysqlUrl;

    /**
     * mysqlUsername
     */
    private String mysqlUsername;

    /**
     * mysqlPassword
     */
    private String mysqlPassword;

    /**
     * mysqlUrl_profile
     */
    private String mysqlUrl_profile;

    /**
     * mysqlUsername_profile
     */
    private String mysqlUsername_profile;

    /**
     * mysqlPassword_profile
     */
    private String mysqlPassword_profile;
    
    /**
     * redisIp
     */
    private String redisIp;

    /**
     * redisPort
     */
    private String redisPort;

    /**
     * redisParent
     */
    private String redisParent;
    
    /**
     * redisIp_profile
     */
    private String redisIp_profile;

    /**
     * redisPort_profile
     */
    private String redisPort_profile;

    /**
     * redisParent_profile
     */
    private String redisParent_profile;

    /**
     * textOnly
     */
    private boolean textOnly;

    /**
     * jdbcUrl
     */
    private String jdbcUrl;

    /**
     * oracleUsername
     */
    private String oracleUsername;

    /**
     * oraclePassword
     */
    private String oraclePassword;
    
    /**
     * jdbcUrl_profile
     */
    private String jdbcUrl_profile;

    /**
     * oracleUsername_profile
     */
    private String oracleUsername_profile;

    /**
     * oraclePassword_profile
     */
    private String oraclePassword_profile;
}
